Normalising an n-bit binary number (where r≥2) comprises left shifting the number so that the most significant (or leading) one is in the left most position (the most significant bit, or MSB) and returning the leading zero count of the number, where ‘leading zeros’ are counted from the left, such that a binary number 1110 has no leading zero and a binary number 0001 has three leading zeros. There are many uses for normalising and in particular it is used in floating point arithmetic. In floating point units in processors, the operation of left shifting the significand (a number with a one in the MSB) by the exponent value is called denormalising and the subsequent operation to convert back to floating point (such that the leading one is in the MSB) is referred to as ‘renormalisation’.
Normalisation (or renormalisation) is performed by performing a leading zero count and then left shifting the input n-bit number by this amount. For example, if the input number is 0001, the leading zero count would identify that there are 3 leading zeros and the subsequent left shifting operation would shift the leading one by 3 positions. The normaliser (or renormaliser) would therefore output the result 1000 and simultaneously the leading zero count of 3 (or 11 in binary).
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known normalisers and renormalisers.